﻿using System.ComponentModel.DataAnnotations;
using Acme.ELeMe.SDK.Api;


namespace Acme.ELeMe.SDK.Request
{
    public class SkuUpdateDto : ElmSign
    {
        public SkuUpdateDto() : base("sku.update")
        {

        }

        /// <summary>
        /// 合作方门店ID
        /// </summary>
        [Required]
        // [JsonProperty(propertyName: "shop_id")]
        public string? shop_id { get; set; }
        /// <summary>
        /// 条形码
        /// </summary>
        //[Required]
        //public string? Upc { get; set; }
        public string? Upc_update { get; set; }
        /// <summary>
        /// 商品名称
        /// </summary>
        public string? Name { get; set; }
        /// <summary>
        /// 商品状态 1上架，0下架
        /// </summary>
        [Required]
        public int Status { get; set; }
        /// <summary>
        /// 商品货架号
        /// </summary>
        // [JsonProperty(propertyName: "shelf_number")]
        public string? Shelf_number { get; set; }
        /// <summary>
        /// 品牌ID
        /// </summary>
        // [JsonProperty(propertyName: "brand_id")]
        public int? Brand_id { get; set; }
        /// <summary>
        /// 品牌名称
        /// </summary>
        // [JsonProperty(propertyName: "brand_name")]
        public string? Brand_name { get; set; }

        /// <summary>
        /// 自定义分类名称（新增分类时返回的分类ID，用户端店铺详情页展示的分类）
        /// </summary>
        // [JsonProperty(propertyName: " category_id")]
        public long? Category_id { get; set; }

        /// <summary>
        /// 自定义分类名称（新增分类时返回的分类ID，用户端店铺详情页展示的分类）
        /// </summary>
        // [JsonProperty(propertyName: "category_name")]
        public string? Category_name { get; set; }
        /// <summary>
        /// 后台类目第三级类目ID
        /// </summary>
        // [JsonProperty(propertyName: "cat3_id")]
        public int? Cat3_id { get; set; }
        /// <summary>
        /// 商品图片, 最多6张，格式为png、jpg、jpeg，单张小于5M，建议上传白底的正方形图片
        /// </summary>
        public List<PhotosItem>? Photos { get; set; }

        /// <summary>
        /// 商品描述字段在饿了么APP店铺详情页-商品详情页下方展示，展示优先级rtf＞desc。rtf内容为空时，desc内容自动转入rtf。rtf内容不为空时，desc的传入不生效。desc仅支持上传文字，字数0-6000
        /// </summary>
        public string? Desc { get; set; }

        /// <summary>
        /// 富文本图文详情字段在饿了么APP店铺详情页-商品详情页下方展示，展示优先级rtf＞desc。支持上传图文，格式要求为富文本文件url链接，请先调用sku.uploadrtf获取富文本文件url。
        /// </summary>
        public string? Rtf { get; set; }

        /// <summary>
        /// 库存数量,范围：0~9999
        /// </summary>
        [Required]
        // [JsonProperty(propertyName: "left_num")]
        public int Left_num { get; set; }

        /// <summary>
        /// 销售价格，单位：分，范围：1~99999900
        /// </summary>
        [Required]
        // [JsonProperty(propertyName: "sale_price")]
        public int Sale_price { get; set; }

        /// <summary>
        /// 重量，单位：克(g)，范围：1~999999
        /// </summary>
        [Range(1, 999999, ErrorMessage = "重量，单位：克(g)，范围：1~999999")]
        public int Weight { get; set; }

        /// <summary>
        /// 商品自定义ID，同一个门店内的「商品自定义ID」具有唯一性
        /// </summary>
        // [JsonProperty(propertyName: "custom_sku_id")]
        public string? Custom_sku_id { get; set; }

        /// <summary>
        /// 商品准备时长, 单位: 分钟, 范围: 0~120
        /// </summary>
        [Range(0, 120, ErrorMessage = "商品准备时长, 单位: 分钟, 范围: 0~120")]
        // [JsonProperty(propertyName: "preparation_time")]
        public int Preparation_time { get; set; }

        /// <summary>
        /// 是否支持附加加工服务，0不支持， 1支持
        /// </summary>
        // [JsonProperty(propertyName: "process_type")]
        public int Process_type { get; set; }

        /// <summary>
        /// 加工服务内容
        /// </summary>
        // [JsonProperty(propertyName: "process_detail")]
        public List<Process_detailItem>? Process_detail { get; set; }

        /// <summary>
        /// 商家自定义属性，如，甜度：不加糖，半糖，全糖。辣度：不加辣，微辣，中辣，麻辣。
        /// </summary>
        // [JsonProperty(propertyName: "sku_property")]
        public List<Sku_propertyItem>? Sku_property { get; set; }

        /// <summary>
        /// 简介描述，展示在饿了么App中商品名称的下方，作为卖点展示给消费者。最多255个中文字符
        /// </summary>
        [MaxLength(255, ErrorMessage = "简介描述，展示在饿了么App中商品名称的下方，作为卖点展示给消费者。最多255个中文字符")]
        public string? Summary { get; set; }

        /// <summary>
        /// 【称重品字段】称重标识，1:称重品,2:非称重品。不传时默认为2非称重品
        /// </summary>
        // [JsonProperty(propertyName: "weight_flag")]
        public int? Weight_flag { get; set; }

        /// <summary>
        /// 【称重品字段】售卖单位（称重品必传，称重品包含两种情况）：(A) 纯称重，枚举值如下: kg, g。（B）按件称重，枚举值如下：个, 份, 盒, 箱, 条, 只, 头, 瓶, 袋, 把, 包。
        /// </summary>
        // [JsonProperty(propertyName: "sale_unit")]
        public string? Sale_unit { get; set; }

        /// <summary>
        /// 称重品字段】预扣款重量(kg)，(称重品必传):（1）售卖单位为kg时,传1kg；（2）售卖单位是g时,传0.001kg；（3）其他售卖单位时，支持三位小数
        /// </summary>
        // [JsonProperty(propertyName: "preminus_weight")]
        public double? Preminus_weight { get; set; }

        /// <summary>
        /// 【称重品字段】起购量，(称重品必传，例:2条)。说明:（1）售卖单位为kg时：三位小数；（2）售卖单位是g时：正整数；（3）其他售卖单位：正整数
        /// </summary>
        public double? Minimum { get; set; }

        public List<Sku_spec>? Sku_Spec { get; set; }

        /// <summary>
        /// 【称重品字段】商品增加步长，(称重品必传，例:1条)。说明:（1）售卖单位为kg时：三位小数；（2）售卖单位是g时：正整数；（3）其他售卖单位：传1
        /// </summary>
        // [JsonProperty(propertyName: "sale_step")]
        public int? Sale_step { get; set; }
    }
}
